// $ANTLR 3.4 C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g 2012-05-09 19:46:28

	package ui.grammar;
	
	import java.io.File;
	import java.io.InputStream;
	import ui.UserInterface;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class LocCmdParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "DEBUG", "DELIM", "FILTER", "FOCI", "HELP", "IGNORE", "INLINE_START", "INLINE_STOP", "INPUT", "PRINT", "REPLACE_STAT", "SILENT", "STAT", "STRING", "TABLE", "VERBOSE"
    };

    public static final int EOF=-1;
    public static final int DEBUG=4;
    public static final int DELIM=5;
    public static final int FILTER=6;
    public static final int FOCI=7;
    public static final int HELP=8;
    public static final int IGNORE=9;
    public static final int INLINE_START=10;
    public static final int INLINE_STOP=11;
    public static final int INPUT=12;
    public static final int PRINT=13;
    public static final int REPLACE_STAT=14;
    public static final int SILENT=15;
    public static final int STAT=16;
    public static final int STRING=17;
    public static final int TABLE=18;
    public static final int VERBOSE=19;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public LocCmdParser(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public LocCmdParser(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return LocCmdParser.tokenNames; }
    public String getGrammarFileName() { return "C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g"; }


    	private UserInterface ui;
    	
    	public LocCmdParser(TokenStream in, UserInterface ui) {
    		this(in);
    		this.ui = ui;
    	}
    	
    	@Override
    	public Object recoverFromMismatchedSet(IntStream input, RecognitionException e, BitSet follow) throws RecognitionException {
    		throw e;
    	}
    	
    	@Override
    	protected Object recoverFromMismatchedToken (IntStream input, int ttype, BitSet follow) throws RecognitionException {
    		throw new MismatchedTokenException(ttype, input);
    	}


    protected static class args_scope {
        boolean inOpts;
    }
    protected Stack args_stack = new Stack();



    // $ANTLR start "args"
    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:56:1: args : ( HELP DELIM EOF | HELP DELIM STRING DELIM EOF | ( DEBUG DELIM )? input DELIM FOCI DELIM a= script (b= DELIM STAT DELIM (r= REPLACE_STAT DELIM )? c= script )? ( DELIM optAtom )* DELIM EOF );
    public final void args() throws RecognitionException {
        args_stack.push(new args_scope());
        Token b=null;
        Token r=null;
        Token STRING1=null;
        InputStream a =null;

        InputStream c =null;


        ((args_scope)args_stack.peek()).inOpts = false;
        try {
            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:59:2: ( HELP DELIM EOF | HELP DELIM STRING DELIM EOF | ( DEBUG DELIM )? input DELIM FOCI DELIM a= script (b= DELIM STAT DELIM (r= REPLACE_STAT DELIM )? c= script )? ( DELIM optAtom )* DELIM EOF )
            int alt5=3;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==HELP) ) {
                int LA5_1 = input.LA(2);

                if ( (LA5_1==DELIM) ) {
                    int LA5_3 = input.LA(3);

                    if ( (LA5_3==EOF) ) {
                        alt5=1;
                    }
                    else if ( (LA5_3==STRING) ) {
                        alt5=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 5, 3, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 5, 1, input);

                    throw nvae;

                }
            }
            else if ( (LA5_0==DEBUG||LA5_0==INPUT) ) {
                alt5=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;

            }
            switch (alt5) {
                case 1 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:59:4: HELP DELIM EOF
                    {
                    match(input,HELP,FOLLOW_HELP_in_args145); 

                    match(input,DELIM,FOLLOW_DELIM_in_args147); 

                    match(input,EOF,FOLLOW_EOF_in_args149); 

                    ui.help();

                    }
                    break;
                case 2 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:60:4: HELP DELIM STRING DELIM EOF
                    {
                    match(input,HELP,FOLLOW_HELP_in_args156); 

                    match(input,DELIM,FOLLOW_DELIM_in_args158); 

                    STRING1=(Token)match(input,STRING,FOLLOW_STRING_in_args160); 

                    match(input,DELIM,FOLLOW_DELIM_in_args162); 

                    match(input,EOF,FOLLOW_EOF_in_args164); 

                    ui.help((STRING1!=null?STRING1.getText():null));

                    }
                    break;
                case 3 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:61:4: ( DEBUG DELIM )? input DELIM FOCI DELIM a= script (b= DELIM STAT DELIM (r= REPLACE_STAT DELIM )? c= script )? ( DELIM optAtom )* DELIM EOF
                    {
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:61:4: ( DEBUG DELIM )?
                    int alt1=2;
                    int LA1_0 = input.LA(1);

                    if ( (LA1_0==DEBUG) ) {
                        alt1=1;
                    }
                    switch (alt1) {
                        case 1 :
                            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:61:5: DEBUG DELIM
                            {
                            match(input,DEBUG,FOLLOW_DEBUG_in_args172); 

                            match(input,DELIM,FOLLOW_DELIM_in_args174); 

                            ui.setDebugMode(true);

                            }
                            break;

                    }


                    pushFollow(FOLLOW_input_in_args182);
                    input();

                    state._fsp--;


                    match(input,DELIM,FOLLOW_DELIM_in_args186); 

                    match(input,FOCI,FOLLOW_FOCI_in_args188); 

                    match(input,DELIM,FOLLOW_DELIM_in_args190); 

                    pushFollow(FOLLOW_script_in_args194);
                    a=script();

                    state._fsp--;


                    ((args_scope)args_stack.peek()).inOpts =true;

                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:64:3: (b= DELIM STAT DELIM (r= REPLACE_STAT DELIM )? c= script )?
                    int alt3=2;
                    int LA3_0 = input.LA(1);

                    if ( (LA3_0==DELIM) ) {
                        int LA3_1 = input.LA(2);

                        if ( (LA3_1==STAT) ) {
                            alt3=1;
                        }
                    }
                    switch (alt3) {
                        case 1 :
                            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:64:4: b= DELIM STAT DELIM (r= REPLACE_STAT DELIM )? c= script
                            {
                            b=(Token)match(input,DELIM,FOLLOW_DELIM_in_args203); 

                            match(input,STAT,FOLLOW_STAT_in_args205); 

                            match(input,DELIM,FOLLOW_DELIM_in_args207); 

                            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:64:23: (r= REPLACE_STAT DELIM )?
                            int alt2=2;
                            int LA2_0 = input.LA(1);

                            if ( (LA2_0==REPLACE_STAT) ) {
                                alt2=1;
                            }
                            switch (alt2) {
                                case 1 :
                                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:64:24: r= REPLACE_STAT DELIM
                                    {
                                    r=(Token)match(input,REPLACE_STAT,FOLLOW_REPLACE_STAT_in_args212); 

                                    match(input,DELIM,FOLLOW_DELIM_in_args214); 

                                    }
                                    break;

                            }


                            pushFollow(FOLLOW_script_in_args220);
                            c=script();

                            state._fsp--;


                            }
                            break;

                    }


                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:65:3: ( DELIM optAtom )*
                    loop4:
                    do {
                        int alt4=2;
                        int LA4_0 = input.LA(1);

                        if ( (LA4_0==DELIM) ) {
                            int LA4_1 = input.LA(2);

                            if ( (LA4_1==FILTER||LA4_1==IGNORE||LA4_1==PRINT||LA4_1==SILENT||(LA4_1 >= TABLE && LA4_1 <= VERBOSE)) ) {
                                alt4=1;
                            }


                        }


                        switch (alt4) {
                    	case 1 :
                    	    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:65:4: DELIM optAtom
                    	    {
                    	    match(input,DELIM,FOLLOW_DELIM_in_args227); 

                    	    pushFollow(FOLLOW_optAtom_in_args229);
                    	    optAtom();

                    	    state._fsp--;


                    	    }
                    	    break;

                    	default :
                    	    break loop4;
                        }
                    } while (true);


                    match(input,DELIM,FOLLOW_DELIM_in_args235); 

                    match(input,EOF,FOLLOW_EOF_in_args237); 


                    		ui.parseInput();
                    		ui.setFociScript(a);
                    		if (b != null) {
                    			ui.setStatScript(c, r != null);
                    		}
                    		

                    }
                    break;

            }
        }
        catch (RecognitionException e) {

            		if (((args_scope)args_stack.peek()).inOpts) {
            			ui.getErrorLogger().logErrorMsg("Error: Invalid option(s). Type 'java -jar <jarfile> --help' for usage information.");
            		} else {
            			ui.getErrorLogger().logErrorMsg("Error: invalid arguments. Type 'java -jar <jarfile> --help' for usage information.");
            		}
            		throw new RuntimeException();
            	
        }

        finally {
        	// do for sure before leaving
            args_stack.pop();
        }
        return ;
    }
    // $ANTLR end "args"



    // $ANTLR start "input"
    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:84:1: input : INPUT DELIM a= file ( DELIM b= file )* ;
    public final void input() throws RecognitionException {
        File a =null;

        File b =null;


        try {
            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:85:2: ( INPUT DELIM a= file ( DELIM b= file )* )
            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:85:4: INPUT DELIM a= file ( DELIM b= file )*
            {
            match(input,INPUT,FOLLOW_INPUT_in_input260); 

            match(input,DELIM,FOLLOW_DELIM_in_input262); 

            pushFollow(FOLLOW_file_in_input266);
            a=file();

            state._fsp--;


            ui.loadInputFile(a);

            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:85:49: ( DELIM b= file )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==DELIM) ) {
                    int LA6_1 = input.LA(2);

                    if ( (LA6_1==STRING) ) {
                        alt6=1;
                    }


                }


                switch (alt6) {
            	case 1 :
            	    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:85:50: DELIM b= file
            	    {
            	    match(input,DELIM,FOLLOW_DELIM_in_input271); 

            	    pushFollow(FOLLOW_file_in_input275);
            	    b=file();

            	    state._fsp--;


            	    ui.loadInputFile(b);

            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "input"



    // $ANTLR start "file"
    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:88:1: file returns [File f] : STRING ;
    public final File file() throws RecognitionException {
        File f = null;


        Token STRING2=null;

        try {
            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:89:2: ( STRING )
            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:89:4: STRING
            {
            STRING2=(Token)match(input,STRING,FOLLOW_STRING_in_file295); 

            f = ui.retrieveFile(STRING2.getText());

            }

        }
        catch (RecognitionException e) {

            		ui.getErrorLogger().logErrorMsg("Error: Invalid filepath.");
            		throw new RuntimeException();
            	
        }

        finally {
        	// do for sure before leaving
        }
        return f;
    }
    // $ANTLR end "file"



    // $ANTLR start "script"
    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:96:1: script returns [InputStream in] : ( INLINE_START DELIM STRING DELIM INLINE_STOP | file );
    public final InputStream script() throws RecognitionException {
        InputStream in = null;


        Token STRING3=null;
        File file4 =null;


        try {
            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:97:2: ( INLINE_START DELIM STRING DELIM INLINE_STOP | file )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==INLINE_START) ) {
                alt7=1;
            }
            else if ( (LA7_0==STRING) ) {
                alt7=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;

            }
            switch (alt7) {
                case 1 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:97:4: INLINE_START DELIM STRING DELIM INLINE_STOP
                    {
                    match(input,INLINE_START,FOLLOW_INLINE_START_in_script320); 

                    match(input,DELIM,FOLLOW_DELIM_in_script322); 

                    STRING3=(Token)match(input,STRING,FOLLOW_STRING_in_script324); 

                    match(input,DELIM,FOLLOW_DELIM_in_script326); 

                    match(input,INLINE_STOP,FOLLOW_INLINE_STOP_in_script328); 

                    in = ui.buildInputStream(STRING3.getText());

                    }
                    break;
                case 2 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:98:4: file
                    {
                    pushFollow(FOLLOW_file_in_script335);
                    file4=file();

                    state._fsp--;


                    in = ui.buildInputStream(file4);

                    }
                    break;

            }
        }
        catch (RecognitionException e) {

            		ui.getErrorLogger().logErrorMsg("Error: Invalid script definition.");
            		throw new RuntimeException();
            	
        }

        finally {
        	// do for sure before leaving
        }
        return in;
    }
    // $ANTLR end "script"



    // $ANTLR start "optAtom"
    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:105:1: optAtom : ( IGNORE | VERBOSE | PRINT | PRINT DELIM file | FILTER DELIM script | SILENT | TABLE );
    public final void optAtom() throws RecognitionException {
        File file5 =null;

        InputStream script6 =null;


        try {
            // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:106:2: ( IGNORE | VERBOSE | PRINT | PRINT DELIM file | FILTER DELIM script | SILENT | TABLE )
            int alt8=7;
            switch ( input.LA(1) ) {
            case IGNORE:
                {
                alt8=1;
                }
                break;
            case VERBOSE:
                {
                alt8=2;
                }
                break;
            case PRINT:
                {
                int LA8_3 = input.LA(2);

                if ( (LA8_3==DELIM) ) {
                    int LA8_7 = input.LA(3);

                    if ( (LA8_7==EOF||LA8_7==FILTER||LA8_7==IGNORE||LA8_7==PRINT||LA8_7==SILENT||(LA8_7 >= TABLE && LA8_7 <= VERBOSE)) ) {
                        alt8=3;
                    }
                    else if ( (LA8_7==STRING) ) {
                        alt8=4;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 8, 7, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 8, 3, input);

                    throw nvae;

                }
                }
                break;
            case FILTER:
                {
                alt8=5;
                }
                break;
            case SILENT:
                {
                alt8=6;
                }
                break;
            case TABLE:
                {
                alt8=7;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;

            }

            switch (alt8) {
                case 1 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:106:4: IGNORE
                    {
                    match(input,IGNORE,FOLLOW_IGNORE_in_optAtom356); 

                    ui.setIgnoreBadData();

                    }
                    break;
                case 2 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:107:4: VERBOSE
                    {
                    match(input,VERBOSE,FOLLOW_VERBOSE_in_optAtom363); 

                    ui.setVerbose();

                    }
                    break;
                case 3 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:108:4: PRINT
                    {
                    match(input,PRINT,FOLLOW_PRINT_in_optAtom370); 

                    ui.setPrint();

                    }
                    break;
                case 4 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:109:4: PRINT DELIM file
                    {
                    match(input,PRINT,FOLLOW_PRINT_in_optAtom377); 

                    match(input,DELIM,FOLLOW_DELIM_in_optAtom379); 

                    pushFollow(FOLLOW_file_in_optAtom381);
                    file5=file();

                    state._fsp--;


                    ui.setPrint(file5);

                    }
                    break;
                case 5 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:110:4: FILTER DELIM script
                    {
                    match(input,FILTER,FOLLOW_FILTER_in_optAtom388); 

                    match(input,DELIM,FOLLOW_DELIM_in_optAtom390); 

                    pushFollow(FOLLOW_script_in_optAtom392);
                    script6=script();

                    state._fsp--;


                    ui.setCellFilter(script6);

                    }
                    break;
                case 6 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:111:4: SILENT
                    {
                    match(input,SILENT,FOLLOW_SILENT_in_optAtom399); 

                    ui.setSilent();

                    }
                    break;
                case 7 :
                    // C:\\Users\\Charles\\Documents\\ANTLR\\lant\\LocCmd.g:112:4: TABLE
                    {
                    match(input,TABLE,FOLLOW_TABLE_in_optAtom406); 

                    ui.setTable();

                    }
                    break;

            }
        }
        catch (RecognitionException e) {

            		ui.getErrorLogger().logErrorMsg("Error: Invalid option. Type 'java -jar <jarfile> --help' for usage information.");
            		recover(input,e);
            	
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "optAtom"

    // Delegated rules


 

    public static final BitSet FOLLOW_HELP_in_args145 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args147 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_args149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_HELP_in_args156 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args158 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_STRING_in_args160 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args162 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_args164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DEBUG_in_args172 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args174 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_input_in_args182 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args186 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_FOCI_in_args188 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args190 = new BitSet(new long[]{0x0000000000020400L});
    public static final BitSet FOLLOW_script_in_args194 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args203 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_STAT_in_args205 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args207 = new BitSet(new long[]{0x0000000000024400L});
    public static final BitSet FOLLOW_REPLACE_STAT_in_args212 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args214 = new BitSet(new long[]{0x0000000000020400L});
    public static final BitSet FOLLOW_script_in_args220 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args227 = new BitSet(new long[]{0x00000000000CA240L});
    public static final BitSet FOLLOW_optAtom_in_args229 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_args235 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_args237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INPUT_in_input260 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_input262 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_file_in_input266 = new BitSet(new long[]{0x0000000000000022L});
    public static final BitSet FOLLOW_DELIM_in_input271 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_file_in_input275 = new BitSet(new long[]{0x0000000000000022L});
    public static final BitSet FOLLOW_STRING_in_file295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INLINE_START_in_script320 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_script322 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_STRING_in_script324 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_script326 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_INLINE_STOP_in_script328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_file_in_script335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IGNORE_in_optAtom356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_VERBOSE_in_optAtom363 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PRINT_in_optAtom370 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PRINT_in_optAtom377 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_optAtom379 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_file_in_optAtom381 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FILTER_in_optAtom388 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_DELIM_in_optAtom390 = new BitSet(new long[]{0x0000000000020400L});
    public static final BitSet FOLLOW_script_in_optAtom392 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SILENT_in_optAtom399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TABLE_in_optAtom406 = new BitSet(new long[]{0x0000000000000002L});

}